package com.itbaizhan.paymentdemo.service;

import com.itbaizhan.paymentdemo.controller.dto.OrderInfoDTO;
import com.itbaizhan.paymentdemo.entity.OrderInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.itbaizhan.paymentdemo.enums.OrderStatus;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author itbaizhan
 * @since 04-26
 */
public interface IOrderInfoService extends IService<OrderInfo> {
    //创建订单
    OrderInfo createOrder(OrderInfoDTO orderInfoDTO);

    /**
     * 根据订单编号查询订单信息
     * @param orderNO
     * @return
     */
    OrderInfo findByOrderNo(String orderNO);

    /**
     *用于防止重复下单
     * @param id  订单id
     * @param codeUrl  二维码
     */
    void saveCodeUrl(Long id,String codeUrl);

    /**
     * 更新支付状态  未支付改为已支付
     * @param id   订单id
     * @param orderStatus   订单状态
     */
    void updateOrderStatus(Long id, OrderStatus orderStatus);

    /**
     * 更新支付状态  未支付改为已支付
     * @param orderNO   订单编号
     * @param orderStatus   订单状态
     */
    void updateOrderStatus(String orderNO, OrderStatus orderStatus);
    //查询超时订单   minutes：分钟
    List<OrderInfo> getTimeOutOrder(int minutes);
}
